<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>SdFat: Arduino/libraries/SdFat/src/SdFatConfig.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">SdFat
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_a991eec27578c865874ede3d8ec657c2.html">Arduino</a></li><li class="navelem"><a class="el" href="dir_481cc946b8a81b8d9363a4aad6201160.html">libraries</a></li><li class="navelem"><a class="el" href="dir_1281b15c327061056ab3b326e90c50cf.html">SdFat</a></li><li class="navelem"><a class="el" href="dir_c18d6c86f7b0afecac5c3a8a9885031e.html">src</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">SdFatConfig.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>configuration definitions  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for SdFatConfig.h:</div>
<div class="dyncontent">
<div class="center"><img src="_sd_fat_config_8h__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_sd_fat_config_8h" alt=""/></div>
<map name="_arduino_2libraries_2_sd_fat_2src_2_sd_fat_config_8h" id="_arduino_2libraries_2_sd_fat_2src_2_sd_fat_config_8h">
</map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="_sd_fat_config_8h__dep__incl.png" border="0" usemap="#_arduino_2libraries_2_sd_fat_2src_2_sd_fat_config_8hdep" alt=""/></div>
<map name="_arduino_2libraries_2_sd_fat_2src_2_sd_fat_config_8hdep" id="_arduino_2libraries_2_sd_fat_2src_2_sd_fat_config_8hdep">
<area shape="rect" id="node2" href="_fat_lib_config_8h.html" title="configuration definitions " alt="" coords="506,95,677,136"/>
<area shape="rect" id="node15" href="_sd_spi_8h.html" title="SdSpi class for V2 SD/SDHC cards. " alt="" coords="712,95,872,136"/>
<area shape="rect" id="node16" href="_sd_spi_card_8h.html" title="SdSpiCard class for V2 SD/SDHC cards. " alt="" coords="816,184,1002,225"/>
<area shape="rect" id="node3" href="_arduino_files_8h.html" title="PrintFile class. " alt="" coords="550,363,721,404"/>
<area shape="rect" id="node5" href="_fat_file_8h.html" title="FatFile class. " alt="" coords="400,273,554,315"/>
<area shape="rect" id="node10" href="_arduino_stream_8h.html" title="ArduinoInStream and ArduinoOutStream classes. " alt="" coords="60,720,246,761"/>
<area shape="rect" id="node14" href="_fat_volume_8h.html" title="FatVolume class. " alt="" coords="629,184,792,225"/>
<area shape="rect" id="node4" href="_fat_file_system_8h.html" title="FatFileSystem class. " alt="" coords="544,452,728,493"/>
<area shape="rect" id="node6" href="ios_8h.html" title="ios_base and ios classes " alt="" coords="321,363,476,404"/>
<area shape="rect" id="node11" href="fstream_8h.html" title="fstream, ifstream, and ofstream classes " alt="" coords="44,631,198,672"/>
<area shape="rect" id="node13" href="_stdio_stream_8h.html" title="StdioStream class. " alt="" coords="126,363,297,404"/>
<area shape="rect" id="node7" href="istream_8h.html" title="istream class " alt="" coords="164,452,318,493"/>
<area shape="rect" id="node12" href="ostream_8h.html" title="ostream class " alt="" coords="342,452,497,493"/>
<area shape="rect" id="node8" href="iostream_8h.html" title="iostream class " alt="" coords="193,541,348,583"/>
<area shape="rect" id="node9" href="bufstream_8h.html" title="ibufstream and obufstream classes " alt="" coords="223,631,379,672"/>
<area shape="rect" id="node17" href="_sd_fat_8h.html" title="SdFat class. " alt="" coords="832,273,986,315"/>
<area shape="rect" id="node18" href="_sd_fat_util_8h.html" title="Useful utility functions. " alt="" coords="832,363,986,404"/>
</map>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:aa918e5b1946ba4be891b081607e8193f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#aa918e5b1946ba4be891b081607e8193f">ARDUINO_FILE_USES_STREAM</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:aa918e5b1946ba4be891b081607e8193f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a2b1ca4d91cff876f48deeaacbc33da"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a9a2b1ca4d91cff876f48deeaacbc33da">DESTRUCTOR_CLOSES_FILE</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a9a2b1ca4d91cff876f48deeaacbc33da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c1ace70ac452b3af13a00950551b3df"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a0c1ace70ac452b3af13a00950551b3df">ENABLE_SPI_TRANSACTIONS</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a0c1ace70ac452b3af13a00950551b3df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a270eefdaec4778f2a491658f34f61b17"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a270eefdaec4778f2a491658f34f61b17">ENDL_CALLS_FLUSH</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a270eefdaec4778f2a491658f34f61b17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28998c5daf4bd038f4f93172698320b1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a28998c5daf4bd038f4f93172698320b1">FAT12_SUPPORT</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a28998c5daf4bd038f4f93172698320b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84c504fb619d92d3af2e4445f4c004e1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a84c504fb619d92d3af2e4445f4c004e1">IMPLEMENT_SPI_INTERFACE_SELECTION</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a84c504fb619d92d3af2e4445f4c004e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2865dac8fdbb4fff47105db32ddf05b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#ac2865dac8fdbb4fff47105db32ddf05b">MAINTAIN_FREE_CLUSTER_COUNT</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ac2865dac8fdbb4fff47105db32ddf05b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a838861a01379e94361148d22e62b1977"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a838861a01379e94361148d22e62b1977">SD_HAS_CUSTOM_SPI</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a838861a01379e94361148d22e62b1977"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89b43e6b5c76008d9596494cf64e54fb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a89b43e6b5c76008d9596494cf64e54fb">SD_SPI_CONFIGURATION</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a89b43e6b5c76008d9596494cf64e54fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb1987ec2f011af56fcb7a5eac4242fb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#adb1987ec2f011af56fcb7a5eac4242fb">SPI_INTERFACE_COUNT</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:adb1987ec2f011af56fcb7a5eac4242fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2536b194b3b007604a39e8526e108b52"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a2536b194b3b007604a39e8526e108b52">USE_LONG_FILE_NAMES</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a2536b194b3b007604a39e8526e108b52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc3ef382d3ab8d7e6f8fc134ef21d487"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#afc3ef382d3ab8d7e6f8fc134ef21d487">USE_MULTI_BLOCK_IO</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:afc3ef382d3ab8d7e6f8fc134ef21d487"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2e76ffb2fdb830175abf513dd640fdd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#af2e76ffb2fdb830175abf513dd640fdd">USE_SD_CRC</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:af2e76ffb2fdb830175abf513dd640fdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23f662882413dcb017ebd8107473b8c3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a23f662882413dcb017ebd8107473b8c3">USE_SEPARATE_FAT_CACHE</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a23f662882413dcb017ebd8107473b8c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e8a928d86c50c91c0bfc9a442373e14"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#a4e8a928d86c50c91c0bfc9a442373e14">WDT_YIELD_TIME_MICROS</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a4e8a928d86c50c91c0bfc9a442373e14"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:af12e3a0d80cb8c7c9e3841887c508f3f"><td class="memItemLeft" align="right" valign="top">uint8_t const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#af12e3a0d80cb8c7c9e3841887c508f3f">SOFT_SPI_MISO_PIN</a> = 12</td></tr>
<tr class="separator:af12e3a0d80cb8c7c9e3841887c508f3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2f492b4970ffbbea92d5d3e3f8aa2f0"><td class="memItemLeft" align="right" valign="top">uint8_t const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#ac2f492b4970ffbbea92d5d3e3f8aa2f0">SOFT_SPI_MOSI_PIN</a> = 11</td></tr>
<tr class="separator:ac2f492b4970ffbbea92d5d3e3f8aa2f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add7db7df22669e60cddd5698113d6327"><td class="memItemLeft" align="right" valign="top">uint8_t const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#add7db7df22669e60cddd5698113d6327">SOFT_SPI_SCK_PIN</a> = 13</td></tr>
<tr class="separator:add7db7df22669e60cddd5698113d6327"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3fc94b8e56959250e83b791cdd678d1"><td class="memItemLeft" align="right" valign="top">const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sd_fat_config_8h.html#af3fc94b8e56959250e83b791cdd678d1">SPI_SCK_INIT_DIVISOR</a> = 128</td></tr>
<tr class="separator:af3fc94b8e56959250e83b791cdd678d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>configuration definitions </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="aa918e5b1946ba4be891b081607e8193f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ARDUINO_FILE_USES_STREAM&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set ARDUINO_FILE_USES_STREAM nonzero to use Stream as the base class for the Arduino <a class="el" href="class_file.html" title="Arduino SD.h style File API. ">File</a> class. If ARDUINO_FILE_USES_STREAM is zero, Print will be used as the base class for the Arduino <a class="el" href="class_file.html" title="Arduino SD.h style File API. ">File</a> class.</p>
<p>You can save some flash if you do not use Stream input functions such as find(), findUntil(), readBytesUntil(), readString(), readStringUntil(), parseInt(), and parseFloat(). </p>

</div>
</div>
<a class="anchor" id="a9a2b1ca4d91cff876f48deeaacbc33da"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DESTRUCTOR_CLOSES_FILE&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set DESTRUCTOR_CLOSES_FILE nonzero to close a file in its destructor.</p>
<p>Causes use of lots of heap in ARM. </p>

</div>
</div>
<a class="anchor" id="a0c1ace70ac452b3af13a00950551b3df"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ENABLE_SPI_TRANSACTIONS&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set ENABLE_SPI_TRANSACTIONS nonzero to enable the SPI transaction feature of the standard Arduino SPI library. You must include SPI.h in your programs when ENABLE_SPI_TRANSACTIONS is nonzero. </p>

</div>
</div>
<a class="anchor" id="a270eefdaec4778f2a491658f34f61b17"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ENDL_CALLS_FLUSH&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Call flush for endl if ENDL_CALLS_FLUSH is nonzero</p>
<p>The standard for iostreams is to call flush. This is very costly for <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a>. Each call to flush causes 2048 bytes of I/O to the SD.</p>
<p><a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> has a single 512 byte buffer for SD I/O so it must write the current data block to the SD, read the directory block from the SD, update the directory entry, write the directory block to the SD and read the data block back into the buffer.</p>
<p>The SD flash memory controller is not designed for this many rewrites so performance may be reduced by more than a factor of 100.</p>
<p>If ENDL_CALLS_FLUSH is zero, you must call flush and/or close to force all data to be written to the SD. </p>

</div>
</div>
<a class="anchor" id="a28998c5daf4bd038f4f93172698320b1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FAT12_SUPPORT&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set FAT12_SUPPORT nonzero to enable use if FAT12 volumes. FAT12 has not been well tested and requires additional flash. </p>

</div>
</div>
<a class="anchor" id="a84c504fb619d92d3af2e4445f4c004e1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define IMPLEMENT_SPI_INTERFACE_SELECTION&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Check if API to select HW SPI interface is needed. </p>

</div>
</div>
<a class="anchor" id="ac2865dac8fdbb4fff47105db32ddf05b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAINTAIN_FREE_CLUSTER_COUNT&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set MAINTAIN_FREE_CLUSTER_COUNT nonzero to keep the count of free clusters updated. This will increase the speed of the freeClusterCount() call after the first call. Extra flash will be required. </p>

</div>
</div>
<a class="anchor" id="a838861a01379e94361148d22e62b1977"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SD_HAS_CUSTOM_SPI&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Determine the default SPI configuration. </p>

</div>
</div>
<a class="anchor" id="a89b43e6b5c76008d9596494cf64e54fb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SD_SPI_CONFIGURATION&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The symbol SD_SPI_CONFIGURATION defines SPI access to the SD card.</p>
<p>IF SD_SPI_CONFIGUTATION is define to be zero, only the <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> class is define and <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> uses a fast custom SPI implementation if avaiable. If SD_HAS_CUSTOM_SPI is zero, the standard SPI library is used.</p>
<p>If SD_SPI_CONFIGURATION is define to be one, only the <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> class is define and <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> uses the standard Arduino SPI.h library.</p>
<p>If SD_SPI_CONFIGURATION is define to be two, only the <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> class is define and <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> uses software SPI on the pins defined below.</p>
<p>If SD_SPI_CONFIGURATION is define to be three, the three classes, <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a>, <a class="el" href="class_sd_fat_lib_spi.html" title="SdFat class using the standard Arduino SPI library. ">SdFatLibSpi</a>, and <a class="el" href="class_sd_fat_soft_spi.html" title="SdFat class using software SPI. ">SdFatSoftSpi</a> are defined. <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a> uses the fast custom SPI implementation. <a class="el" href="class_sd_fat_lib_spi.html" title="SdFat class using the standard Arduino SPI library. ">SdFatLibSpi</a> uses the standard Arduino SPI library. <a class="el" href="class_sd_fat_soft_spi.html" title="SdFat class using software SPI. ">SdFatSoftSpi</a> is a template class that uses Software SPI. The template parameters define the software SPI pins. See the ThreeCard example for simultaneous use of all three classes. </p>

</div>
</div>
<a class="anchor" id="adb1987ec2f011af56fcb7a5eac4242fb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SPI_INTERFACE_COUNT&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Number of hardware interfaces. </p>

</div>
</div>
<a class="anchor" id="a2536b194b3b007604a39e8526e108b52"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define USE_LONG_FILE_NAMES&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set USE_LONG_FILE_NAMES nonzero to use long file names (LFN). Long <a class="el" href="class_file.html" title="Arduino SD.h style File API. ">File</a> Name are limited to a maximum length of 255 characters.</p>
<p>This implementation allows 7-bit characters in the range 0X20 to 0X7E except the following characters are not allowed:</p>
<p>&lt; (less than) </p><blockquote class="doxtable">
<p>(greater than) </p>
</blockquote>
<p>: (colon) " (double quote) / (forward slash) \ (backslash) | (vertical bar or pipe) ? (question mark)</p><ul>
<li>(asterisk) </li>
</ul>

</div>
</div>
<a class="anchor" id="afc3ef382d3ab8d7e6f8fc134ef21d487"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define USE_MULTI_BLOCK_IO&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set USE_MULTI_BLOCK_IO nonzero to use multi-block SD read/write.</p>
<p>Don't use mult-block read/write on small AVR boards. </p>

</div>
</div>
<a class="anchor" id="af2e76ffb2fdb830175abf513dd640fdd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define USE_SD_CRC&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>To enable SD card CRC checking set USE_SD_CRC nonzero.</p>
<p>Set USE_SD_CRC to 1 to use a smaller CRC-CCITT function. This function is slower for AVR but may be fast for ARM and other processors.</p>
<p>Set USE_SD_CRC to 2 to used a larger table driven CRC-CCITT function. This function is faster for AVR but may be slower for ARM and other processors. </p>

</div>
</div>
<a class="anchor" id="a23f662882413dcb017ebd8107473b8c3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define USE_SEPARATE_FAT_CACHE&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Set USE_SEPARATE_FAT_CACHE nonzero to use a second 512 byte cache for FAT table entries. This improves performance for large writes that are not a multiple of 512 bytes. </p>

</div>
</div>
<a class="anchor" id="a4e8a928d86c50c91c0bfc9a442373e14"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define WDT_YIELD_TIME_MICROS&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Handle Watchdog Timer for WiFi modules.</p>
<p>Yield will be called before accessing the SPI bus if it has been more than WDT_YIELD_TIME_MICROS microseconds since the last yield call by <a class="el" href="class_sd_fat.html" title="Main file system class for SdFat library. ">SdFat</a>. </p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="af12e3a0d80cb8c7c9e3841887c508f3f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t const SOFT_SPI_MISO_PIN = 12</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Software SPI Master In Slave Out pin </p>

</div>
</div>
<a class="anchor" id="ac2f492b4970ffbbea92d5d3e3f8aa2f0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t const SOFT_SPI_MOSI_PIN = 11</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>If SD_SPI_CONFIGURATION is defined to be two, these definitions will define the pins used for software SPI.</p>
<p>The default definition allows Uno shields to be used on other boards.Software SPI Master Out Slave In pin </p>

</div>
</div>
<a class="anchor" id="add7db7df22669e60cddd5698113d6327"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t const SOFT_SPI_SCK_PIN = 13</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Software SPI Clock pin </p>

</div>
</div>
<a class="anchor" id="af3fc94b8e56959250e83b791cdd678d1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const uint8_t SPI_SCK_INIT_DIVISOR = 128</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>SPI SCK divisor for SD initialization commands. or greater </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jul 19 2016 06:31:51 for SdFat by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.10
</small></address>
</body>
</html>
